
import pandas as pd

# df = pd.read_excel('./demo.xls')
df = pd.read_excel('./宠物小精灵.xlsx')

##########################################################################

# print(df.姓名)


##########################################################################
'''
条件筛选
'''
# df1 = df[df['年龄']==10]
# df1 = df[(df['年龄'] > 10) | (df['年龄'] < 10)]
# df1 = df[(df['年龄'] > 1) & (df['年龄'] < 10)]
# df1 = df[df['年龄'] != 1 ]
# print(df1)

'''
数据统计
'''
# res = df['年龄'].value_counts()#统计每个年龄出现的次数
# res = df['年龄'].mean() #统计平均年龄
# res = df['年龄'].sum() #统计平均年龄
# res = df['年龄'].sort_values() #统计平均年龄

print(df['姓名','年龄'])




##########################################################################
'''
排名练习

1.排名只是对数据进行一个排名，不是排序，不会打乱原来数据的顺序，只是增加了一个字段，来记录是第几名
2.排名主要是用 method这个参数，可使用的值是 first min max average dense

"first": 第一个，谁出现的位置靠前，谁的排名靠前。比如A, B两个人的分数都是95，在分数总排名里为2，则A为第2名B为第3，下一个是第4，就是顺延名次
"dense": 当A,B两个人的分数都是95，在分数总排名里为2，则A为第2名B为第2名，下一个为第3名

"min": 当A,B两个人的分数都是95，在分数总排名里为2，则A、B都为第2名，下一个为第4名
"max": 当A,B两个人的分数都是95，在分数总排名里为2，则A、B都为第3名，下一个为第4名
min max的区别就是取最小或者最大的那个名次，eg: 1 2 2 2 5 或者 1 3 3 3 5,dense的区别是 1 2 2 2 3


df['年龄排名'] = df.年龄.rank(method='max',ascending=False)
print(df)
'''






#print(df.飞行次数)
#print(df[df.飞行次数==3].中文姓名)
# print(df[df['飞行次数']==2])
# print(df)

#多条件筛选
#print(df[(df['飞行次数']==1) & (df['中文姓名']=='谢志娟')])

#字段统计，相当于 groupBy + having count
#df['飞行次数'].value_counts()

#指定字段排序
#df.sort_values(['飞行次数','证件编号'])

#字段加和
#df['飞行次数'].sum()

#取指定行，包括边界值
# print(df[['中文姓名']].loc[0:2])

# df['飞行次数排名'] = df['飞行次数'].rank(method='min')
# print(df)
# print(df.sort_values(['飞行次数排名'],ascending=False))

#print(df.columns)





